package cn.edu.zafu.bigdata.weier;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class AppendAndReadFile {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入您的学号：");
        String studentId = scanner.nextLine();

        System.out.println("请输入您想要追加的文本：");
        String content = scanner.nextLine();

        String fileName = "src/main/java/cn/edu/zafu/bigdata/weier/files/" + studentId + ".txt";

        // 追加内容到文件
        appendToFile(fileName, content);

        // 读取并显示文件内容
        readFile(fileName);
        scanner.close();
    }

    public static void appendToFile(String fileName, String content) {
        File file = new File(fileName);
        // 确保文件所在的目录存在
        if (!file.getParentFile().exists()) {
            file.getParentFile().mkdirs();
        }
        try (BufferedWriter writer = new BufferedWriter(new FileWriter(file, true))) { // true 表示追加内容
            writer.write(content);
            writer.newLine(); // 添加换行符，以便下次追加时内容不会紧挨着上一次的内容
            System.out.println("文本已成功追加到文件：" + fileName);
        } catch (IOException e) {
            System.err.println("追加内容到文件时发生错误：" + e.getMessage());
        }
    }

    public static void readFile(String fileName) {
        File file = new File(fileName);
        if (!file.exists()) {
            System.out.println("文件不存在，无法读取内容。");
            return;
        }
        try (FileReader reader = new FileReader(file)) {
            int character;
            System.out.println("文件内容如下：");
            while ((character = reader.read()) != -1) {
                System.out.print((char) character);
            }
        } catch (IOException e) {
            System.err.println("读取文件时发生错误：" + e.getMessage());
        }
    }
}